perm filename DRIVE[AI,JMC] blob
sn#005448 filedate 1971-08-13 generic text, type T, neo UTF8
00100 STPT: CALLI
00600 SETZM TIMR#
00700 SETZM CNTR#
00800 MOVE P,[XWD -2000,PDL1]
00900 PUSHJ P,NXTSET
00905 PUSHJ P,SETBTB
00920 INIT 17,15
00930 SIXBIT /DIS/
00940 0
00950 CALLI 12
00960 OUTPUT 17,COM
01000 INIT: SETOM LOC
01010 HRLZI 2,-40
01020 MOVE 1,OFBTB(2)
01030 MOVEM 1,@PCTB(2)
01040 AOBJN 2,.-2
01100 MOVE 1,[XWD LOC,LOC+1]
01200 BLT 1,MOVE+3777
01220 MOVNI 1,400
01240 MOVEM 1,BCOUNT
01260 MOVEM 1,WCOUNT
01270 SETZM DEF
01275 MOVE 1,[XWD DEF,DEF+1]
01280 BLT 1,ATT+37
01300 LP: PUSHJ P,GNCH
01310 CAIN "R"
01320 JRST RMV
01330 CAIN "A"
01340 JRST ADD
01350 CAIN "M"
01360 JRST MV
01370 CAIN "S"
01380 JRST SETIT
01390 CAIN "I"
01400 JRST INIT
01410 CAIN "L"
01420 JRST LOCP
01430 CAIN "O"
01440 JRST OCCP
01450 CAIN "A"
01460 JRST BEARP
01470 CAIN "K"
01480 JRST KDIRP
01490 CAIN "T"
01500 JRST TIMEP
01510 CAIN "P"
01520 JRST MOVEP
01521 CAIN "B"
01522 JRST BLKDO
01523 CAIN "W"
01524 JRST WHTDO
01600 CAIN "F"
01700 JRST FIXIT
01800 JRST LP
00100 MV: PUSHJ P,READ
00200 SKIPGE MOVER,OCC(1)
00250 JRST QMK
00300 JOIN: PUSHJ P,GNCH
00400 CAIE "-"
00500 JRST .-2
00600 PUSHJ P,READ
00700 MOVE DEST,1
00800 PUSHJ P,CALLER
00900 JRST LP
01000 ADD: PUSHJ P,READ
01100 SKIPL LOC(1)
01200 JRST QMK
01300 MOVE MOVER,1
01400 JRST JOIN
01500 RMV: PUSHJ P,READ
01600 SKIPGE MOVER,OCC(1)
01700 JRST QMK
01800 MOVNI DEST,1
01900 PUSHJ P,CALLER
02000 JRST LP
02100 SETIT: HRLZI 1,-40
02200 SET1: HRRZ DEST,SETB(1)
02300 HLRZ MOVER,SETB(1)
02400 MOVEM 1,PIEC#
02500 PUSHJ P,CALLER
02600 MOVE 1,PIEC
02700 AOBJN 1,SET1
02800 JRST LP
02900 SETB: FOO=0
03000 REPEAT 20,<XWD FOO,FOO
03100 FOO=FOO+1>
03200 FOO=20
03300 REPEAT 10,<XWD FOO,FOO+50
03400 FOO=FOO+1>
03500 FOO=30
03600 REPEAT 10,<XWD FOO,FOO+30
03700 FOO=FOO+1>
04000 GNCH: MOVEI IBUF
04100 CALLI 1
04200 LDB [POINT 7,IBUF,6]
04300 POPJ P,
04500 CALLER: AOS CNTR
04600 CALLI 1,27
04700 MOVEM 1,THLD#
04800 PUSHJ P,PUTCH
04900 CALLI 1,27
05000 SUB 1,THLD
05100 ADDM 1,TIMR
05200 POPJ P,
05300 QMK: MOVEI 1,QMS
05400 PUSHJ P,TXTOUT
05600 JRST LP
05700 QMS: ASCIZ /?
05800 /
00100 TXTOUT: HRLI 1,440700
00200 ILDB 1
00300 JUMPE TXT2
00400 PUSHJ P,OCHR
00500 JRST TXTOUT+1
00700 TXT2: POPJ P,
00800 OCHR: SOSG OBUF+2
00900 OUTPUT 1,0
01000 IDPB OBUF+1
01100 POPJ P,
01200 QMT: ASCIZ /?
01300 /
01400 PDL1: BLOCK 2001
01450 LOCP: PUSHJ P,GETLPT
01500 MOVEI 1,LOCM
01600 PUSHJ P,TXTOUT
01700 HRLZI MOVER,-40
01800 MOVEI DEST,20
01900 LPA: SKIPGE I,LOC(MOVER)
02000 JRST NO1
02100 PUSHJ P,NOUT1
02200 MOVEI " "
02300 PUSHJ P,OCHR
02400 LP1: SOJLE DEST,CR1
02500 AOBJN MOVER,LPA
02600 PUSHJ P,RELLPT
02700 JRST LP
02800 NO1: MOVEI 1,NMS
02900 PUSHJ P,TXTOUT
03000 JRST LP1
03100 CR1: MOVEI 1,CMS
03200 PUSHJ P,TXTOUT
03300 MOVEI DEST,20
03400 JRST LP1+1
03500 CMS: ASCIZ /
03600 /
03700 NMS: ASCIZ /-- /
03800 LOCM: ASCIZ /
03900 LOCATIONS
04000 /
04100 NOUT1: MOVE I
04200 LSH -3
04300 ADDI "0"
04400 PUSHJ P,OCHR
04500 MOVE I
04600 ANDI 7
04700 ADDI "0"
04800 JRST OCHR
00050 OCCP: PUSHJ P,GETLPT
00100 HRLZI MOVER,-100
00200 MOVEI DEST,10
00210 MOVEI 1,CMS
00220 PUSHJ P,TXTOUT
00300 MOVEI 1,STMS
00400 PUSHJ P,TXTOUT
00500 LP3: MOVEI "*"
00600 PUSHJ P,OCHR
00700 MOVE 2,OCC(MOVER)
00800 PUSHJ P,PPRNT
00900 SOJLE DEST,CR2
01000 LP5: AOBJN MOVER,LP3
01200 PUSHJ P,RELLPT
01250 JRST LP
01300 CR2: MOVEI 1,STCRMS
01400 PUSHJ P,TXTOUT
01500 MOVEI 1,STMS
01600 PUSHJ P,TXTOUT
01700 MOVEI DEST,10
01800 JRST LP5
01900 PPRNT: JUMPL 2,SPCS
02000 MOVEI "B"
02100 TRZN 2,20
02200 MOVEI "W"
02300 PUSHJ P,OCHR
02400 MOVE LTB(2)
02500 JRST OCHR
02600 SPCS: MOVEI 1,SPMS
02700 JRST TXTOUT
02800 LTB: EXP "R","N","B","Q","K","B","N","R"
02900 REPEAT 10,<EXP "P">
03000 STMS: ASCIZ /*************************
03100 /
03200 STCRMS: ASCIZ /*
03300 /
03400 SPMS: ASCIZ / /
00050 BEARP: PUSHJ P,GETLPT
00100 MOVEI 1,BMS
00200 PUSHJ P,TXTOUT
00300 SETZM MOVER
00400 MOVEI I,100
00500 MOVEI N,20
00600 LP7: SKIPGE 2,JBEAR(MOVER)
00700 JRST NO2
00800 PUSHJ P,PPRNT
00900 MOVEI " "
01000 PUSHJ P,OCHR
01100 LP6: ADDI MOVER,100
01200 SOJG N,LP7
01300 MOVEI 1,CMS
01400 PUSHJ P,TXTOUT
01500 SUBI MOVER,1777
01600 SOJG I,LP7-1
01700 PUSHJ P,RELLPT
01800 JRST LP
01900 NO2: MOVEI 1,NMS
02000 PUSHJ P,TXTOUT
02100 JRST LP6
02200 BMS: ASCIZ /
02300 BEARINGS
02400 /
02450 KDIRP: PUSHJ P,GETLPT
02500 MOVEI 1,KDM1
02600 PUSHJ P,TXTOUT
02650 MOVEI K,7
02700 HRLZI MOVER,-100
02800 LP15: SKIPGE I,KDIR(MOVER)
02900 JRST LP13
03000 PUSHJ P,NOUT1
03010 MOVEI " "
03020 PUSHJ P,OCHR
03100 LP20: SOJL K,LP14
03200 AOBJN MOVER,LP15
03300 HRLI MOVER,-100
03400 MOVEI 1,KDM2
03500 PUSHJ P,TXTOUT
03600 MOVEI K,7
03700 LP18: SKIPGE I,KDIR(MOVER)
03800 JRST LP16
03900 PUSHJ P,NOUT1
03910 MOVEI " "
03920 PUSHJ P,OCHR
04000 LP21: SOJL K,LP17
04100 AOBJN MOVER,LP18
04200 PUSHJ P,RELLPT
04300 JRST LP
04400 LP13: MOVEI 1,NMS2
04500 PUSHJ P,TXTOUT
04600 JRST LP20
04700 LP14: MOVEI 1,CMS
04800 PUSHJ P,TXTOUT
04900 MOVEI K,7
05000 JRST LP20+1
05100 LP16: MOVEI 1,NMS2
05200 PUSHJ P,TXTOUT
05300 JRST LP21
05400 LP17: MOVEI 1,CMS
05500 PUSHJ P,TXTOUT
05600 MOVEI K,7
05700 JRST LP21+1
05800 NMS2: ASCIZ /-- /
05900 KDM1: ASCIZ /
06000 WHITE KING
06100 /
06200 KDM2: ASCIZ /
06300 BLACK KING
06400 /
00050 MOVEP: PUSHJ P,GETLPT
00100 MOVEI 1,MOVMS
00200 PUSHJ P,TXTOUT
00300 HRLZI MOVER,-40
00400 LP11: MOVE K,LM(MOVER)
00500 HLRZ 1,K
00510 LSH 1,3
00520 SKIPN 1
00530 MOVEI 1,-4
00532 MOVE KIND(MOVER)
00534 CAIN KNIGHT
00536 MOVEI 1,-10
00540 HRL K,1
00600 MOVEI B,12
00700 MOVEI 1,CMS
00800 PUSHJ P,TXTOUT
00900 HRRZ 2,MOVER
01000 PUSHJ P,PPRNT
01100 MOVEI 1,CMS
01200 PUSHJ P,TXTOUT
01300 LP10: SKIPGE N,MOVE(K)
01400 JRST LP9
01500 PUSHJ P,DPR
01600 SOJL B,CR3
01700 LP9: AOBJN K,LP10
01800 AOBJN MOVER,LP11
01900 MOVEI 1,CMS
02000 PUSHJ P,TXTOUT
02050 PUSHJ P,RELLPT
02100 JRST LP
02200 CR3: MOVEI 1,CMS
02300 PUSHJ P,TXTOUT
02400 MOVEI B,12
02500 JRST LP9
02600 DPR: MOVE I,N
02700 LSH I,-6
02800 PUSHJ P,NOUT1
02900 MOVEI "-"
03000 PUSHJ P,OCHR
03100 MOVE I,N
03200 ANDI I,77
03300 PUSHJ P,NOUT1
03400 MOVEI " "
03500 JRST OCHR
03600 MOVMS: ASCIZ /
03700 MOVES
03800 /
00050 TIMEP: PUSHJ P,GETLPT
00100 MOVEI 1,TM1
00200 PUSHJ P,TXTOUT
00300 MOVE I,CNTR
00400 PUSHJ P,NOUT2
00500 MOVEI 1,TM2
00600 PUSHJ P,TXTOUT
00700 MOVE I,TIMR
00800 PUSHJ P,NOUT2
00900 MOVEI 1,TM3
01000 PUSHJ P,TXTOUT
01100 MOVE I,TIMR
01200 IDIV I,CNTR
01300 PUSHJ P,NOUT2
01400 MOVEI 1,CMS
01500 PUSHJ P,TXTOUT
01550 PUSHJ P,RELLPT
01600 JRST LP
01700 TM1: ASCIZ /
01800 NUMBER OF CALLS /
01900 TM2: ASCIZ /
02000 TOTAL TIME /
02100 TM3: ASCIZ /
02200 AVERAGE TIME /
02300 NOUT2: IDIVI I,12
02400 PUSH P,I+1
02500 SKIPE I
02600 PUSHJ P,NOUT2
02700 POP P,
02800 ADDI "0"
02900 JRST OCHR
03100 IBUF: BLOCK 3
03200 READ: PUSHJ P,GNCH
03300 CAIL "0"
03400 CAILE "9"
03500 JRST .-3
03600 MOVE 1,0
03700 SUBI 1,"0"
03800 LSH 1,3
03900 PUSHJ P,GNCH
04000 CAIL "0"
04100 CAILE "9"
04200 JRST .-3
04300 SUBI "0"
04400 ADD 1,0
04500 POPJ P,
00100 GETLPT: INIT 1,0
00150 SIXBIT /LPT/
00200 XWD OBUF,0
00250 JRST GETLPT
00300 MOVE JOBFF
00350 MOVEM SVJOBF#
00400 OUTBUF 1,3
00450 OUTPUT 1,0
00500 POPJ P,
00550 RELLPT: OUTPUT 1,0
00600 RELEAS 1,0
00650 MOVE SVJOBF
00700 MOVEM JOBFF
00750 POPJ P,
00800 EXTERNAL JOBFF
00850 OBUF: BLOCK 3
00950 WHTDO: TDZA 1,1
01000 BLKDO: MOVEI 1,20
01050 MOVEM 1,COLOR#
01100 MOVEM 1,MCOL#
01150 MOVEI 1,-1
01200 MOVEM 1,ALPHA#
01250 MOVNI 1,-1
01300 MOVEM 1,BETA#
01350 MOVEI 1,MVTB+3777
01400 MOVEM 1,LLIM#
01500 MOVEM 1,ULIM#
01550 SETZM LEVEL#
01555 INIT 1,0
01560 SIXBIT /MTA0/
01565 XWD OBUF,0
01570 JRST .-3
01575 MOVE JOBFF
01580 MOVEM SVJOBF
01585 OUTBUF 1,3
01590 OUTPUT 1,0
01600 PUSHJ P,MKMOV
01650 MOVE T1,MTB+1
01700 MOVE DEST,T1
01750 ANDI DEST,77
01800 SKIPGE MOVER,OCC(DEST)
01850 JRST DO1
01900 PUSH P,T1
01950 MOVNI DEST,1
02000 PUSHJ P,PUTCH
02050 POP P,T1
02100 DO1: MOVE DEST,T1
02150 ANDI DEST,77
02200 MOVE MOVER,T1
02250 LSH MOVER,-6
02260 ANDI MOVER,37
02300 PUSHJ P,PUTCH
02305 PUSHJ P,RELLPT
02350 JRST LP
02400 FIXIT: HRLZI 1,NPPS
02500 FIX1: HRRZ DEST,FTB(1)
02600 HLRZ MOVER,FTB(1)
02700 MOVEM 1,PIEC
02800 PUSHJ P,CALLER
02900 MOVE 1,PIEC
03000 AOBJN 1,FIX1
03100 JRST LP
03200 FTB: BYTE (18) 0,5,4,6,3,32,10,11,11,21,12,30,13,27
03300 BYTE (18) 20,73,24,76,23,43,30,40,31,45,32,56,33,67
03400 BYTE (18) 34,61
03500 NPPS=-17
00100 DEFINE SDB (X,Y)
00200 <XWD Y*400,X*400+210>
00300 DEFINE CHR (A,B)
00400 <XWD A,202
00500 XWD B,2>
00600 DEFINE SC (X,A,B)
00700 <IRP X <PC'X: SDB 300,0
00800 CHR A,B>>
00900 DBUF: Y=36*4
01000 REPEAT 10,<X=36*4
01100 REPEAT 31,<XWD Y*400,X*400+10
01200 X=X-12>
01300 REPEAT 2,<Y=Y-12
01400 X=36*4
01500 REPEAT 11,<XWD Y*400,X*400+10
01600 X=X-36>>
01700 Y=Y-12>
01800 X=36*4
01900 REPEAT 31,<XWD Y*400,X*400+10
02000 X=X-12>
02100 XWD 2,204
02200 PC0: SDB 300,0
02300 CHR 360001,40074
02400 PC1: SDB 300,0
02500 CHR 714001,1
02600 PC2: SDB 300,0
02700 CHR 214021,243
02800 PC3: SDB 300,0
02900 CHR 700021,360
03000 PC4: SDB 300,0
03100 CHR 714001,163
03200 PC5: SDB 300,0
03300 CHR 214021,243
03400 PC6: SDB 300,0
03500 CHR 714001,1
03600 PC7: SDB 300,00
03700 CHR 360001,40074
03900 SC (<10,11,12,13,14,15,16,17>,354021,273)
04100 PC20: SDB 300,0
04200 CHR 360007,640074
04300 PC21: SDB 300,0
04400 CHR 314525,117401
04500 PC22: SDB 300,0
04600 CHR 214727,707243
04700 PC23: SDB 300,0
04800 CHR 700327,603360
04900 PC24: SDB 300,0
05000 CHR 714305,403163
05100 PC25: SDB 300,0
05200 CHR 214727,707243
05300 PC26: SDB 300,0
00100 CHR 314525,117401
00200 PC27: SDB 300,0
00300 CHR 360007,640074
00500 SC (<30,31,32,33,34,35,36,37>,354023,400273)
00700 TBLG=.-DBUF
00800 COM: XWD -TBLG,DBUF-1
00900 0
01000 PCTB: X=PC0
01100 REPEAT 40,<EXP X
01200 X=X+3>
01250 0
01300 POSTB: Y=36*4-3
01400 REPEAT 10,<X=-4*36+7
01500 REPEAT 10,<SDB X,Y
01600 X=X+36>
01700 Y=Y-36>
01800 OFBTB: Y=36*4+200
01900 REPEAT 2,<X=-4*36+7
02000 REPEAT 10,<SDB X,Y
02100 X=X+36>
02200 Y=Y-36>
02300 Y=-4*36-200
02400 REPEAT 2,<X=-4*36+7
02500 REPEAT 10,<SDB X,Y
02600 X=X+36>
02700 Y=Y+36>
02800 END STPT